﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace System.Common.Native.WindowsInput
{
  /// <summary>
  /// Specifies various aspects of a keystroke. This member can be certain combinations of the following values.
  /// </summary>
#pragma warning disable 3009

  public enum KeyboardFlag : uint // UInt32
  {
    /// <summary>
    /// KEYEVENTF_EXTENDEDKEY = 0x0001 (If specified, the scan code was preceded by a prefix byte that has the value 0xE0 (224).)
    /// </summary>
    EXTENDEDKEY = 0x0001,

    /// <summary>
    /// KEYEVENTF_KEYUP = 0x0002 (If specified, the key is being released. If not specified, the key is being pressed.)
    /// </summary>
    KEYUP = 0x0002,

    /// <summary>
    /// KEYEVENTF_UNICODE = 0x0004 (If specified, wScan identifies the key and wVk is ignored.)
    /// </summary>
    UNICODE = 0x0004,

    /// <summary>
    /// KEYEVENTF_SCANCODE = 0x0008 (Windows 2000/XP: If specified, the system synthesizes a VK_PACKET keystroke. The wVk parameter must be zero. This flag can only be combined with the KEYEVENTF_KEYUP flag. For more information, see the Remarks section.)
    /// </summary>
    SCANCODE = 0x0008,
  }

#pragma warning restore 3009
}
